package com.ruoyi.traplight.mapper;

import com.ruoyi.traplight.domain.DeviceDao;
import com.ruoyi.traplight.domain.aliyun.DeviceProperties;
import org.springframework.stereotype.Repository;

import java.util.List;


/**
 * @author FLInt
 * @date 2021/10/20 9:53
 */
@Repository
public interface TrapLightDeviceMapper {

    DeviceDao selectDeviceByName(String deviceName);
    DeviceDao selectDeviceByMac(String deviceMac);

    List<Integer> selectDeviceIdByArea(String area);

    int insertDevice(DeviceDao deviceDao);

    void updateDevice(DeviceDao deviceDao);

    int updateDeviceSelective(DeviceDao deviceDao);

    void insertDeviceStatus(DeviceProperties deviceProperties);

    DeviceProperties selectDeviceStatus(String deviceName);
    void updateDeviceStatus(DeviceProperties deviceProperties);

    List<DeviceDao> selectDeviceList();

    void deleteDevice(String deviceName);

    List<DeviceDao> selectDeviceInfoByCondition(DeviceDao deviceDao);

//    void updateDevice(DeviceDao deviceDao);
    /**
     * 根据设备序列号查询实例、密钥
     * @author FLInt
     * @date 2021/11/26 15:42
     * @param deviceName 设备序列号
     * @return com.ruoyi.aliyun.domain.CBLightDeviceInfo
     */
//    CBLightDeviceInfo selectDeviceInfo(String deviceName);
//
//    /**
//     * 查询一个测报灯设备的最新属性status
//     * @author FLInt
//     * @date 2021/10/20 9:58
//     * @param deviceName 设备序列号
//     * @return CBLightDeviceStatus
//     */
//    CBLightDeviceStatus selectDeviceStatus(String deviceName);
//
//    /**
//     * 更新测报灯设备属性
//     * @author FLInt
//     * @date 2021/11/26 16:12
//     * @param deviceStatus 设备状态对象
//     */
//    void updataDeviceStatus(CBLightDeviceStatus deviceStatus);
//
//    /**
//     * 拉取设备列表
//     * @author FLInt
//     * @date 2021/11/27 14:29
//     * @return java.util.List<java.lang.String>
//     */
//    List<String> selectDeviceList();

}
